package it.antonio.ilpizze.assertion;

import it.antonio.ilpizze.assertion.concrete.ArrayAssertion;
import it.antonio.ilpizze.assertion.concrete.BooleanAssertion;
import it.antonio.ilpizze.assertion.concrete.CollectionAssertion;
import it.antonio.ilpizze.assertion.concrete.FileAssertion;
import it.antonio.ilpizze.assertion.concrete.MapAssertion;
import it.antonio.ilpizze.assertion.concrete.ObjectAssertion;

import java.io.File;
import java.util.Collection;
import java.util.Map;

public class Assert {

	public static <T> CollectionAssertion<T> that(Collection<T> subject) {
		return new CollectionAssertion<T>(subject);
	}

	public static <T> ObjectAssertion<T> that(T subject) {
		return new ObjectAssertion<T>(subject);
	}

	public static <T> ArrayAssertion<T> that(T[] subject) {
		return new ArrayAssertion<T>(subject);
	}

	public static FileAssertion that(File subject) {
		return new FileAssertion(subject);
	}

	public static MapAssertion that(Map<?, ?> subject) {
		return new MapAssertion(subject);
	}

	public static BooleanAssertion that(Boolean subject) {
		return new BooleanAssertion(subject);
	}

}